package test;

import hbt.HibernateDAO;

import java.util.ArrayList;
import java.util.List;

import dominio.Articulo;
import dominio.Cliente;
import dominio.Fabricante;
import dominio.Importado;
import dominio.Importador;
import dominio.ItemPedido;
import dominio.Nacional;
import dominio.Pedido;

public class Sistema {
	private List<Cliente> clientes = new ArrayList<Cliente>();
	private List<Articulo> articulos = new ArrayList<Articulo>();
	private List<Pedido> pedidos = new ArrayList<Pedido>();
	private List<Fabricante> fs = new ArrayList<Fabricante>();
	private List<Importador> is = new ArrayList<Importador>();
	
	private static HibernateDAO hDAO;
	
	public Sistema() {
		super();
		hDAO = HibernateDAO.getInstancia();
	}
	
	public void guardarDatos(){
		Cliente c1 = new Cliente("1", "Artur");
		Cliente c2 = new Cliente("2","Rodri");
		Articulo a1 = new Nacional(1, "A1", "Arg", 0.1f, new ArrayList<Fabricante>());
		Articulo a2 = new Nacional(2, "A2", "Arg", 0.1f, new ArrayList<Fabricante>());
		Articulo a3 = new Importado(3, "A3", "Arg", 0.1f);
		Articulo a4 = new Importado(4, "A4", "Arg", 0.1f);
		
		Fabricante fabricante1 = new Fabricante("01", "Ivan IT");
		((Nacional) a1).getFabricantes().add(fabricante1);
		Fabricante fabricante2 = new Fabricante("02", "Ivo and Friends S.A.");
		((Nacional) a2).getFabricantes().add(fabricante2);
		Importador importador1 = new Importador("03", "MICROSOFT");
		((Importado) a3).getImportadores().add(importador1);
		Importador importador2 = new Importador("04","EIPL");
		((Importado) a4).getImportadores().add(importador2);
		
		Pedido p1 = new Pedido(c1, null, new ArrayList<ItemPedido>());
		Pedido p2 = new Pedido (c2, null, new ArrayList<ItemPedido>());
		
		ItemPedido ip1 = new ItemPedido(a1, 1, 022f);
		ItemPedido ip2 = new ItemPedido(a2, 3, 234f);
		ItemPedido ip3 = new ItemPedido(a3, 2, 12f);
		ItemPedido ip4 = new ItemPedido(a4, 5, 43f);
		
		p1.getPedidos().add(ip1);
		p1.getPedidos().add(ip4);
		p2.getPedidos().add(ip3);
		p2.getPedidos().add(ip2);
		
		c1.getPedidos().add(p1);
		c2.getPedidos().add(p2);
		
		
		this.getFs().add(fabricante1);
		this.getFs().add(fabricante2);
		this.getIs().add(importador1);
		this.getIs().add(importador2);
		this.getPedidos().add(p1);
		this.getPedidos().add(p2);
		this.getClientes().add(c1);
		this.getClientes().add(c2);
		this.getArticulos().add(a1);
		this.getArticulos().add(a2);
		this.getArticulos().add(a3);
		this.getArticulos().add(a4);
		
	}
	
	public void persistirListas(){
		hDAO.persistList(clientes);
		hDAO.persistList(is);
		hDAO.persistList(fs);
		hDAO.persistList(articulos);
		hDAO.persistList(pedidos);
		
	}

	public List<Cliente> getClientes() {
		return clientes;
	}

	public void setClientes(List<Cliente> clientes) {
		this.clientes = clientes;
	}

	public List<Articulo> getArticulos() {
		return articulos;
	}

	public void setArticulos(List<Articulo> articulos) {
		this.articulos = articulos;
	}

	public List<Pedido> getPedidos() {
		return pedidos;
	}

	public void setPedidos(List<Pedido> pedidos) {
		this.pedidos = pedidos;
	}

	public List<Fabricante> getFs() {
		return fs;
	}

	public void setFs(List<Fabricante> fs) {
		this.fs = fs;
	}

	public List<Importador> getIs() {
		return is;
	}

	public void setIs(List<Importador> is) {
		this.is = is;
	}
	
	

}
